Batch manual-sprint planner checkpoint reviews - #4
Merged
rica-v3 merged 2 commits intoJul 27, 2026
Conversation
There was a problem hiding this comment.
Pull request overview
This PR optimizes sprint “checkpoint” planner reviews by only triggering them when a TODO successfully completes/commits and there is at least one valid pending requirement candidate, aligning manual and autonomous sprint behavior while reducing no-op planner calls and latency.
Changes:
- Introduces
requirement_checkpoint_review_due()to centralize checkpoint-review gating logic (success status + valid pending candidates). - Updates manual and autonomous sprint flows to use the shared checkpoint predicate, preventing forced
ongoing_reviewcalls when no candidates exist. - Expands test coverage to validate candidate filtering, checkpoint gating, and manual-sprint batching behavior; documents the manual-sprint batching behavior.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| workflows/sprints/lifecycle.py | Adds a shared checkpoint-review predicate and applies it in manual + autonomous sprint loops. |
| tests/test_sprint_lifecycle.py | Adds unit coverage for checkpoint gating and ensures only valid pending candidates are exposed. |
| tests/test_orchestration_sprint_execution.py | Adds orchestration-level tests ensuring manual sprints don’t invoke planner without candidates and batch candidates into one checkpoint review. |
| docs/operations_guide.md | Documents the optimized manual-sprint checkpoint review behavior and batching semantics. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
Manual sprints previously forced an
ongoing_reviewplanner call after every completed or committed TODO, even when no requirement candidates existed. Planner runs withxhighreasoning by default, so these no-op reviews added deterministic model cost and critical-path latency without changing sprint scope.Impact
For a manual sprint with
Nsuccessful TODOs, no new requirements, and execution within one configured review interval, forced ongoing planner reviews fall fromNto0.Pending requirements still trigger a review at the next completed or committed TODO checkpoint. Multiple candidates are carried in one reconciliation request. Initial/recovery reviews, interval-based reviews, TODO execution, architecture review, QA, version control, and closeout behavior are unchanged.
Validation
python -m unittest discover -s teams_runtime/tests- 760 tests passedpython -m compileall -q teams_runtime- passedgit diff --check- passed